{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Scale-Free Networks\n",
    "\n",
    "Code examples from [Think Complexity, 2nd edition](http://greenteapress.com/wp/complexity2)\n",
    "\n",
    "Copyright 2016 Allen Downey, [MIT License](http://opensource.org/licenses/MIT)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from __future__ import print_function, division\n",
    "\n",
    "%matplotlib inline\n",
    "%precision 3\n",
    "\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "import random\n",
    "import networkx as nx\n",
    "import numpy as np\n",
    "\n",
    "import thinkplot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from thinkstats2 import RandomSeed\n",
    "RandomSeed(18)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## Graphs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To represent social networks, we'll use `nx.Graph`, the graph representation provided by NetworkX.\n",
    "\n",
    "Each person is represented by a node.  Each friendship is represented by an edge between two nodes.\n",
    "\n",
    "Here's a simple example with 4 people:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nFlnWWc+MGyWVOBwqcDq1kgifFSFGn9PR0aFNmzZp+fLlmj59uh577DFdffXVpscCQurgwYP+6JaX\nl6ulpUUZGRn+jXfChAkhefNZZWWlivLy9OrmzVrgcCjN6/W/j9j95fuIb5o3T0tcLi5HnwMhRp/V\n1tamoqIi/epXv9L3vvc9LV++nLsw0S9ZlqUPP/zwtJurvF6vP7pZWVkaP3680eOa+vp6bSopUW1N\njVqamhQdG6uk5GTdsWgR/12eByFGn1dfX6/Vq1frD3/4g375y1/qF7/4haKiokyPBfSYZVn65z//\nedrG297e7o9uZmamxo4dy30S/QQhRr9RV1enBx98UDt37tSjjz6qhQsX9upmFCBULMtSbW3taWe8\nDofjtI13zJgxhLefIsTod3bt2qWcnBx9+umnWrdunb7xjW/wBxhsxbIs7du377SNNyIi4rSN96qr\nruLf2zBBiNEvWZalv/71r8rNzdXll1+ugoICTZ482fRYCFOdnZ167733/BtvRUWFLrzwQmVmZvrj\nO2rUKNNjwhBCjH6tvb1dGzZs0MqVKzV79mytXr2aP/AQdJ2dnfrHP/7h33grKioUExNz2sY7cuRI\n02PCJggxwkJra6sKCwv11FNP6c4779SDDz6ooUOHmh4L/URHR4eqq6v9G++2bdsUFxfn33gzMzOV\nkJBgekzYFCFGWDl69KhWrlypv/zlL8rNzdU999yjyMhI02Ohj+no6NA777zj33i3b9+uESNG+Dfe\njIwMXXbZZabHRB9BiBGW3n//fT3wwAN69913tWbNGn33u98NycMP0De1t7erqqrKv/Hu2LFDCQkJ\n/m03IyNDl1xyiekx0UcRYoS1iooK5eTkqL29XQUFBZo9e7bpkWADJ0+e1FtvveXfeHfu3KnExMTT\nNl4eUoFAIcQIe5Zl6c9//rNcLpeSkpKUn5+vZF5aHlZOnDght9vt33h37dqlq666yn9jVXp6uuLi\n4kyPiX6KEANfOnHihH77299qzZo1mj9/vh599FFusOmnvvjiC+3Zs8e/8e7evVtJSUn+jTc9PV2x\nsT157T3QfYQYOENzc7Py8/P1zDPP6O677/a/7Ql9l8/n065du/wPz3C73Ro3bpx/4501a5Yuvvhi\n02MiTBFi4Bw++eQTLV++XJs3b9ayZcv005/+VBEREabHQhe0tbVp165d/o33rbfe0rXXXuvfeGfO\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f169a6400d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "G = nx.Graph()\n",
    "G.add_edge(1, 0)\n",
    "G.add_edge(2, 0)\n",
    "G.add_edge(3, 0)\n",
    "nx.draw(G)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The number of friends a person has is the number of edges that connect to their node, which is the \"degree\" of the node."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 3\n",
      "1 1\n",
      "2 1\n",
      "3 1\n"
     ]
    }
   ],
   "source": [
    "for node in G.nodes():\n",
    "    print(node, G.degree(node))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We are often intereted in the \"degree distribution\" of a graph, which is the number of people who have 0 friends, the number who have 1 friend, and so on.\n",
    "\n",
    "The following function extracts a list of degrees, one for each node in a graph."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def degrees(G):\n",
    "    \"\"\"List of degrees for nodes in `G`.\n",
    "    \n",
    "    G: Graph object\n",
    "    \n",
    "    returns: list of int\n",
    "    \"\"\"\n",
    "    return [G.degree(node) for node in G]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's the result for the small example."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[3, 1, 1, 1]"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "degrees(G)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "I'll use `Pmf` from `thinkstats2` to make a probability mass function."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Pmf({1: 0.75, 3: 0.25})"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from thinkstats2 import Pmf\n",
    "\n",
    "pmf = Pmf(degrees(G))\n",
    "pmf"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And `thinkplot` to display it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nIEmN+v+xki4b3eSZiQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f169a637cd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "thinkplot.Hist(pmf, width=0.6)\n",
    "thinkplot.Config(xlabel='Degree', ylabel='PMF', xlim=[0.4, 3.6])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Exercise:** Add another node, or two, to the graph above, and add a few edges.  Plot the new degree distribution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Facebook data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The following function reads a file with one edge per line, specified by two integer node IDs."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def read_graph(filename):\n",
    "    G = nx.Graph()\n",
    "    array = np.loadtxt(filename, dtype=int)\n",
    "    G.add_edges_from(array)\n",
    "    return G"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We'll read the Facecook data downloaded from [SNAP](https://snap.stanford.edu/data/egonets-Facebook.html)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4039, 88234)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# https://snap.stanford.edu/data/facebook_combined.txt.gz\n",
    "\n",
    "fb = read_graph('facebook_combined.txt.gz')\n",
    "n = len(fb)\n",
    "m = len(fb.edges())\n",
    "n, m"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To see how popular \"you\" are, on average, we'll draw a random sample of 1000 people."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "sample = np.random.choice(fb.nodes(), 1000, replace=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For each \"you\" in the sample, we'll look up the number of friends."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "num_your_friends = [fb.degree(node) for node in sample]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To plot the degree distribution, I'll use `EstimatedPdf`, which computes a smooth Probability Density Function that fits the data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nRK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1697bf0210>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from thinkstats2 import EstimatedPdf\n",
    "\n",
    "you_pdf = EstimatedPdf(num_your_friends)\n",
    "thinkplot.Pdf(you_pdf)\n",
    "thinkplot.Config(xlabel='Number of friends', ylabel='PDF')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now what if, instead of \"you\", we choose one of your friends, and look up the number of friends your friend has."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "num_friends_friends = []\n",
    "for node in sample:\n",
    "    friend = np.random.choice(fb.neighbors(node))\n",
    "    num_friends_friends.append(fb.degree(friend))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's the degree distribution for your friend's friends:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n/x+odNXMkaOCpgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1697c9b510>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "friends_pdf = EstimatedPdf(num_friends_friends)\n",
    "thinkplot.Pdf(friends_pdf)\n",
    "thinkplot.Config(xlabel='Number of friends', ylabel='PDF')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The bulk of the distribution is wider, and the tail is thicker.  This difference is reflected in the means:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(42.898, 104.826)"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.mean(num_your_friends), np.mean(num_friends_friends)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And we can estimate the probability that your friend has more friends than you."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.657"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.mean([friend > you for you, friend in zip(num_your_friends, num_friends_friends)])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Power law distributions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "zipf_sample = np.random.zipf(a=2, size=10000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1697c9ba50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pmf = Pmf(zipf_sample)\n",
    "thinkplot.Pdf(pmf, style='.')\n",
    "thinkplot.Config(xlabel='Zipf sample', ylabel='PMF')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\njo5uSaEJE8ars3NX33RHR7e27+zUwQc2qqmpUR0d3dq8Oq+m5mVDHsuODY9r4pGP6+CDJmjChPF6\n9Tc71LWrR5Y0flyDOjY8rqYZb+0nIrSrJxSSdm18QhOPbFXP7lBDQ4OmH36IZp9wjB556FZ95Zs/\nU3f3LvXsDvW80qoJzY+pu+etL050b3xC44+YLUua/rZDtOH5ZfrBssLrjjvA6tkdsq0JjeN0/Kwj\ntGLNRnV379Ku3aEGF04mNo4/QAdObNSOnV19772zc5cidmtnR7fGNTSos3uXunf1aHcUXrNpxqla\neN0deu7OK3XYoQfpkqsX69dtr+m5VRs0rsHatTt0/Kzpfa/XU3y9jrZCvf/ne0t19gdP1PY3Owb8\nYNDV9rgeXrG978sR/b800eyXdOqc/7HHsusuP09fvuY23fXv31XD1FN0yEETlJv9Tv39Fedr4dXf\n1rTjTt/jCxel/47bO7p0+d9cr20TfleWdNpJs/TcI8/qlkev1/Y3O/v29Z2WTyWDYqgvdgy0vt5+\n13vfQ+8IQOl7zDokMv12k+3zJJ0VEV8ozn9K0uyIuKykzT2Svh4Rjxbn/1PSX0bEU/32Nfa/2gQA\nGdiXbzdl3ZPYIOnokvkji8v6tzlqiDb79CYBACOT9bebWiXNsj3TdqOk+ZLu7tfmbkkXSpLtOZK2\nVeN8BABgb5n2JCKix/alkpaqEEg3RcRK2xcXVseiiLjf9sdsvyTpTUmfybImAMDw1c0V1wCA0ccV\n1wCAJEICAJBU1yFh+0Db/2z7O7YvqHY99cz2b9v+ru1bq13LWGB7nu1FthfbPrPa9dQ728fZvtH2\nrba/WO166l3x/85W2x8bsm09n5MoXnexNSLus70kIuZXu6Z6Z/vWiDi/2nWMFbYnS/pGRHy+2rWM\nBbYt6eaIuLDatdQz238tabukFyLi/sHa1lRPwvZNtl+x/Vy/5ambBB6pt67W7hm1QuvACI4lBrEP\nx/Orkr49OlXWj5EcT9t/KOleSYP+p7a/KfdY2v6IpBckvSppyOvPaiokJH1f0lmlC0puEniWpOMl\nLbB9XHH1OhWCQhrGm93PlHss+5qNTnl1p+zjafsaSfdHxDOjWWidKPt4RsQ9EfEHkj41moXWgXKP\nZU7SqZIukPS5oXZeUyERET+X1P+ZnX03CYyIbkm9NwmUpDskfdL2tyXdM3qV1r5yj6Xtw2zfKOk9\n9DD2NoLj+SUV7n78SdtfGNVi68AIjueHbH/T9j9Kum90q61t5R7LiPhqRPyZpB9I+qeh9p/1bTkq\nIXmTwIjYKemz1SiqTg12LLdI+tNqFFXHBjue/yDpH6pRVB0b7Hj+RNJPqlFUnRry5qoRcctwdlRT\nPQkAQG2ph5AYzk0CMTwcy8rieFYWx7NyKnYsazEkrD1Png7nJoEYGMeysjielcXxrJzMjmVNhYTt\nf5P0qKRjbb9s+zMR0SPpSyrcJPB5SUsiYmU166wHHMvK4nhWFsezcrI+lnV9MR0AIFs11ZMAANQW\nQgIAkERIAACSCAkAQBIhAQBIIiQAAEmEBAAgiZBAzbJ9ru2nbT9V/Hnado/ts2wfMZyn6Nm+zPYL\ntv9lNGoepI7tI9jmv2xPGun2JftZbPvtI90e+zcupkPdsP15SRdExOllbLNS0hkR0ZZdZcOq442I\nOKSM9h9Toe4/H8n2/fb1QUmfighuWY6y0ZNAXbB9rKS/UvGBM8V70iwvTl9k+07bD9t+0faVxeU3\nSvodSQ/Y/nK//b3L9uPFHsozvZ+0bd/hwrN/l9v+XEn77bb/zvYK20ttn1J8vZdsn5Oo468S7+Uv\nbD9RfN2rEm/5f0q6K7H9N4r1PWv7/OIy276h2Gt60PZ9tj9R3ORnkj5SfBANUJ6I4Iefmv5R4bkn\nrZI+WbJspqTnitMXqXCHy8mSmiQtl3RScd1/S5oywD6/JWlByf4nFKcnF//s3c+U4vxuSR8tTv9Q\n0o9U+JD1bklPD6OON4p/ninpO8Vpq/CwrNMGqO/Xkg4qme/d/jxJDxanp0paK2lacfm9xeXTJG2R\n9ImS7R+U9PvV/rvkp/5++GSBevC3klZExH8M0uahiNgWER0q/Cd+WnF5/7tj9npM0v+yfbmkYyKi\ns7j8K7afkbRMhdsrv6O4vDMilhanl0v6SUTsLk7PHEYdvT4q6UzbT0l6StI7S16j1JSIeHOA5e+X\ntFiSImKzpLwKD5M5TdJtxeWvSHq433avSmoeYH/AoOrhyXTYj9nOSfojSb8/RNP+J9cGPdkWEYtt\nL5N0jqT7i48YDUkflnRqRHTafliFHoEkdZdsvltSZ3E/Ybv092ioOizp6xEx1GMjdw2xvnR/wzmx\n2CSpfZj7BPrQk0DNsj1F0vckXRiFR9UO5kzbk21PlHSupJ8Pse/fjohfReExo3epMGx0qKStxYA4\nTtKc0k0G290w6uht86Ckz9o+qFhHs+3DB9jni7Z/Z4DX+JmkP7HdUNzuA5KekPSICs/Ttu1pKjzs\nvtSxklYM8h6AAdGTQC27WNLhkm60Lb31qfnrKvzHWOoJFYZ3Zkj6l4h4urg89Sn7fNufVqGHsFHS\n/5a0U9IXbT8v6UUVhqR6DfZpvXTdoHVExEPFAHqs+J62q3Ay/tV++7xP0ukqnFMp3f4O23MkPatC\nj+byiNhs+3YVekHPq/Bs4yclvS5JtqdK2lkcngLKwldgUfdsXyTp5Ii4bKzUYXu6pJsj4qwytjko\nIt60fZikxyW9vxggX5H0ekR8f1/rwv6HngRQgyJik+1/sj0pInYMc7N7bU+WNF7S35T0HLZKqurF\nhKhf9CQAAEmcuAYAJBESAIAkQgIAkERIAACSCAkAQNL/B2ZKOQw5ErJsAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1696c63510>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "thinkplot.Pdf(pmf, style='.')\n",
    "thinkplot.Config(xlabel='Zipf sample (log)', ylabel='PMF', xscale='log')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY8AAAEWCAYAAACe8xtsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHcJJREFUeJzt3XuUnXV97/H3d4ZMJhfiJIEkhECCxpgWSytKpBV1LMXg\npaUVDxIPyJGleFlL6CpFWMvajNW2eJAezgGDVGMqqSSKwtFwKWHVbC5VQyKQAJILEpIJycwQJgO5\nzGSSmW//2M8e9uzsved59n0/+/Naa6/s/Vx/+0km3/ldvr+fuTsiIiJRNFW7ACIiUn8UPEREJDIF\nDxERiUzBQ0REIlPwEBGRyBQ8REQkMgUPERGJTMFDREQiO6HaBcjHzCYCy4AjwCPufleViyQiItR+\nzeNjwN3u/jngL6pdGBERSapo8DCz5WbWbWabM7ZfaGZbzGybmV2ftmsO0Bm8H6pYQUVEJK9K1zxW\nAIvTN5hZE3BbsP1MYImZLQx2d5IMIABWqUKKiEh+FQ0e7v44sD9j8yJgu7vvdPejwGrgomDfvcDH\nzezbwJrKlVRERPKphQ7zU3mjaQpgN8mAgrsfBq7Md7KZaVpgEZECuHvBLTq13mEeiruX9bV06dKy\nnxvmuFzHRNmeuW2sz3F9nvn2h3luYbZV4lkWc58o51Xjecb132Yxz7OUP+vFqoXg8TJwetrnOcG2\nmtHe3l72c8Mcl+uYKNsztxXz3QpVC88z3/4wzy3KtnIr9J5RzqvG86ynZxn13EKfZ039rJc7kme+\ngHnAM2mfm4EXgLlAC/A08HsRrudLly71devWuRRv6dKl1S5CbOhZlpaeZ2msW7fOly5d6sn//gv/\nv9y8BNWXsMzsLqAdmA50A0vdfYWZfQi4hWRNaLm73xjhml7J7xB3iUSiKr/xxZGeZWnpeZaWmeFF\n9HlUNHiUg4KHiEh0xQaPWujzKFpHRweJRKLaxRARqXmJRIKOjo6ir6Oah4hIA1LNQ0REKi4WwUPN\nViIi4ajZKmBmfrj/CBNaW6pdFBGRuqFmK+CLX19F/8BgtYshItIwYhE89vT00dmVOd+iiIiUSy1M\njFi07i3r2LHt91kw74JqF0VEpKYlEomS9BGrz0NEpAEpw1x5HiIikanDXEREKi4WwUN5HiIi4SjP\nI6BmKxGR6NRsJSIiFafgISIikSl4iIhIZLEIHuowFxEJRx3mAXWYi4hEpw5zERGpOAUPERGJTMFD\nREQiU/AQEZHIFDxERCSyWAQPDdUVEQlHQ3UDGqorIhKdhuqKiEjFKXiIiEhkCh4iIhKZgoeIiESm\n4CEiIpEpeIiISGQKHiIiEpmCh4iIRBaL4KEMcxGRcJRhHlCGuYhIdMowFxGRilPwEBGRyBQ8REQk\nMgUPERGJTMFjDP0Dg2zd0UX/wGC1iyIiUjNOqHYBaln/wCBf/Poq9vT0MXtGG8u+uoQJrS3VLpaI\nSNWp5pHHrr297OnpY/LE8ezp6aOza3+1iyQiUhMUPPI4/ZRpzJ7RxsHDR5g9o43TZk2tdpFERGqC\nkgTH0D8wSGfXfk6bNVVNViISG8UmCdZs8DCzM4CvAFPc/ZI8xynDXEQkothmmLv7Dnf/TLXLISIi\nxyt78DCz5WbWbWabM7ZfaGZbzGybmV1f7nKIiEjpVKLmsQJYnL7BzJqA24LtZwJLzGxhsO9yM/sX\nMzsldXgFyigiIhGUPXi4++NA5hjXRcB2d9/p7keB1cBFwfEr3f1vgCNmdjvwR6qZiIjUlmolCZ4K\ndKZ93k0yoIxw917gC5UslIiIhBOLDPP0hU3a29tpb2+vWllERGpRIpEo6aJ5FRmqa2ZzgTXuflbw\n+Vygw90vDD7fALi7f7OAa2uorohIRPUyVNcY3fG9AZhvZnPNrAW4FPh5hcoiIiJFqsRQ3buAXwIL\nzGyXmX3a3YeALwFrgeeA1e7+fKH30BrmIiLhaA3zgJqtRESiq5dmq7JSzUNEJBzVPAKqeYiIRKea\nh4iIVJyCRxlpCVsRiavYJAnWWnKglrAVkVpUqmRB9XmUydYdXVz9Tz9i8sTxHDx8hFu/cikL5s2s\ndrFERAD1edQsLWErInGmZqsymdDawrKvLtEStiJSU9RsFajVZisRkVqmZisREak4BQ8REYlMwUNE\nRCKLRfDQ3FYiIuFobquAOsxFRKJTh7mIiFScgoeIiESm4FEDNIGiiNQbZZhXmSZQFJFKUoZ5oN47\nzDWBoohUgzrM65wmUBSReqSaRw3oHxjUBIoiUlHF1jwUPEREGpCarUREpOIUPEREJLJYBA/NbSUi\nEo7mtgqoz0NEJDr1eTQIZaGLSC2JRYZ53CkLXURqjWoedWDX3l729PQxeeJ49vT00dm1v9pFEpEG\nl7fmYWatwEeB9wKzgX7gWeB+d3+u/MUTeCMLPVXzUBa6iFRbzg5zM/saycCRAH4D9ACtwALgA8H7\na919c0VKmkOjdJgrC11ESqlsGeZm9hF3vz/PjWcAp7v7xkJvXgqNEjxEREpJ05MoeIiIRFZs8Bhz\ntJWZrQEy/3d+DdgI3OHuA4XeXERE6lOY0VYvAgeB7wav14EDJPs+vlu+ooWnDHMRkXAqlmFuZhvc\n/Zxs28zsOXc/s+hSFEHNViIi0VUiw3yymZ2edsPTgcnBR6U7i4g0oDAZ5tcCj5vZ7wADzgC+aGaT\ngB+Us3AiIlKbQo22MrPxwMLg49Za6iRv9Gar/oFBdu3t5fRTpin/Q0RCq8Roq3HA54D3BZsSZnaH\nux8t9KZSGprzSkSqJUyfx+3AO4FlweudwTapMs15JSLVEqbP4xx3/8O0z78ws03lKpCEpzmvRKRa\nwgzVfRL4H+7+u+Dzm4GfuPvZFSjfmNTnoTmvRCS6sk9PYmbnAytIJgsaMBf4tLuvK/SmpdTowUNE\npBAVmdsqGG31tuDjVnc/UugNS03BQ0QkunLOqvuxfCe6+z2F3jQsM7sI+AhwIvB9d384yzEKHiIi\nEZUzeKzIc567+5WF3jQqM2sDbnL3z2bZp+CRRbb8D+WEiEhKXUzJbmbLSS4s1e3uZ6VtvxC4heSQ\n4eXu/s0c538L+Hd3fzrLPgWPDNnyPwDlhIjIiLLNbWVml5lZvv1vMbPzQt5nBbA44/wm4LZg+5nA\nEjNbGOy73Mz+xcxmm9mNwAPZAodkly3/QzkhIlJK+fI8pgNPmdlvSC5D+wrJpWfnA+8H9gE3hLmJ\nuz9uZnMzNi8Ctrv7TgAzWw1cBGxx95XASjP7EnA+MMXM5rv7v4b/ao0rV/6HckJEpFTyNluZWTPw\np8B7gFOAfuB54EF33xXpRsngsSbVbGVmFwOL3f2q4PNlwCJ3vzriddVslUW2/A/lhIhISlnntnL3\nIeDh4FWz0hc2aW9vp729vWplqRUTWltYMG/mmNtEpDEkEomSLppXsTXMs9Q8zgU63P3C4PMNJEdx\nZe00z3Nd1TxERCKqxGJQpWLBK2UDMN/M5ppZC3Ap8PNCLqxlaEVEwqnYMrSlYGZ3Ae0kO+G7gaXu\nvsLMPsToobo3FnBt1TwKpLwPkcZVziTBf3P3/xW8v8Lda3LVQAWPwmgtEJHGVs5mq/Rp2K8p9AaV\noGar6JT3IdKYyt5sZWZPpqZdT39fa1TzKIxqHiKNrZzNVj3AapKd3J8I3o+Imo9RLgoehVPeh0jj\nKmfwuCLfibXSB6LgISISXdmSBGslOITR0dGh5MAS0OgrkfgrVbJgvppH3pwLd/+Lou9eAqp5lIb6\nQEQaSzmnJ/ljoBNYBaxndIKfxEy20VeaykREcskXPGYBFwBLgE8C9wOr3P25ShQsCjVbFS/XTLwi\nEi9lb7YadVByDfMlwE3A19z9tqLvXCJqtiodjb4SaRxlXUkwCBofIRk45pGce+r77v5yoTcsNQUP\nEZHoyjlU907g7cADwGp3f7bQm5STgoeISHTlDB7DwKG0TakDjeTU6VMKvWkpKXiIiERXzjyPSk7X\nXhR1mJeecj5E4qkSeR6twOdJrlm+mWRfx7Gi71hiqnmUnnI+ROKvnLPq/gB4F/AM8GHg5kJvIvUl\nM+dj+84etu7oon9gsNpFE5Eaka/m8Yy7/0Hw/gTgiVqcWVc1j9JLr3nMmD4Fw+l+9YBqISIxUs4M\n86OpN+5+zEwJ5o1iQmsLy766hM6u/fQPDPLlm+9R5rmIjJIvePyhmb0evDdgQvC5pkZbgTrMy2FC\nawsL5s2kf2AwZ+a5OtVF6k9FM8xrmZqtyi9b5rk61UXqWzk7zEWAN2oh6cFBy9iKNDYFD4mkf2CQ\nrTu6OHnqZGbPaOPg4SOaSFGkAeXr8xAZJbOp6ubrLmZf3yFNpCjSgBQ8JLTMpqp9fYc08kqkQanZ\nSkJLrfmhpioRiUXNQ0N1KyM9/0NNVSL1SUN1AxqqKyISnYbqStWlRmBp7iuRxhGLZiupnlzJgso+\nF4k3BQ8pSrZkwdNmTVX2uUjMqdlKipJtBJayz0XiTzUPKUq2EVipgJJtMkURiQeNtpKyyDaZoojU\nDo22kpqSGnkFjGSfaySWSPyo2UpKJtvcV9fe9FN1nIvEUCxqHh0dHSXJmJTiZHaUb3h258jnzq5e\nHt24XTUQkSpLJBJ0dHQUfR31eUjJ5Kp5dHb1sjvo/5gza5pqICI1oNg+DwUPKanMjvL+gUEe3bid\nb61Yy5TJEzh4+Ai3fuXSkSVulUgoUh3FBg/1eUhJpVYdTP/8vne9ldUPbhw1dFfL2IrUNwUPKbts\nuSBbd3Qdl0iotUFE6kcsOsyl9mWug17I2iCagFGkdqjPQ6omSiKhmrlESktJglK3Mmsj+Wi+LJHa\nouAhdUFL4IrUFjVbSd3QfFkipaM8DwWPupQvx0P5HyLlF9s8DzNbCFwDTAd+4e7fqXKRpETydX6r\nY1ykPtRsn4e7b3H3LwCfAP6k2uWR0ugfGOSRDdvY3dU70vm9fWfPyBBcdYyL1Iey1zzMbDnwUaDb\n3c9K234hcAvJALbc3b+Z5dw/Bz4PrCx3OaX8UrWKN+a6glknt/GtFWvpfvXAyHxYWkhKpPZVotlq\nBXArcGdqg5k1AbcB5wN7gA1m9jN332JmlwPvAG5y9zXAGjO7D1hdgbJKGaVqFW+aPAFmwXVXfpCZ\n06fw5ZvvGalp7Os7dFw2uojUnrIHD3d/3MzmZmxeBGx3950AZrYauAjY4u4rgZVm9n4zuwEYD9xf\n7nJK+aUvT3varGm8951vBRhV0zipbZI6y0XqQEVGWwXBY02q2crMLgYWu/tVwefLgEXufnUB19Zo\nqzqSbbhtattJbZO0eJRIhcR2tFUU6QubtLe3097eXrWySH6Zs+6mb8s1WaKG7ooUL5FIlHTRvGrV\nPM4FOtz9wuDzDYBn6zQPcW3VPGIi2zBdQEN3RcqgXmoeFrxSNgDzg6CyF7gUWFLoxTs6OlTjiAFN\n3S5SfqWqgZS95mFmdwHtJJP9uoGl7r7CzD7E6KG6NxZ4fdU8YixK0qCat0TC0/QkCh6xF2ZOK2Wm\ni0SjKdlJNluVsiNIakuYqduVmS4STiKRGDXIqFCqeUjNitIMpZqHSDRqtlLwiKVCgoGmbBcJT81W\nqNkqjgpphoqyMqFIo1KzVUA1j3hSM5RIeanZSsEjNjL7OHJNZRKmH6R/YJBtL3UDcNqsqbyy/6CG\n8IqkUfBQ8IiFMDWNsLWR/oFBrur4IY9s2AruTGht4fRTpjFn1jTVYEQC6vNAfR5xEKaPI2w/yK69\nvby0ex9DQ87g0WF6Xz9MU1OThvCKULo+j9gED01NUt9S07UfPHwk5yJQYY5JHTdvzkk0Nxst45qZ\nNmUiw8PDWlxKhOTkseowR81WcRKmjyPzmFx9IP0Dg2zf2QPAnJlt7Os7lHUIb7bra4oTaQTq81Dw\niK2x+jiKHZGVef7N112s9USkYajPA/V5xNVYfRzFTkmSef6GZ3dqihOJPfV5pFGfRzyN1ccRtg8k\n7PXPefvcoq4nUg/U5xFQs1W8jTXlSLFTkmTrQ9EUJ9II1Oeh4CEiElm9rCQoUjKp7PGBwaO0tozj\ntFlTR/onUqsMasSUSHkpeEhdSWWPJ57YwoFDRzhxYgutrS0cOXIMMzjv7Pk0NzfR/eoBjZgSKaPY\ndJhrtFVjSGWPHz06zLGhYQYGh+h97RCDR49xbMjZtrOHHbtf1YgpkRw0q25AfR6N5fiax3haW8cF\nNQ/jvLPfopqHSAjqMFfwaDip7PFUn8ecmW3s7u4D4K1zZwBoxJTIGBQ8FDxERCJThrmIiFScRltJ\nrGSb2DC17eSpk0cN6R1rP1R3yK8maZRapuAhsZFtokSAL359FZ1dveza28vAwFHM4P3nLOCOjsty\n7q/2kF8twyu1LhbBIzW3lea3amzZJkp0d/b09NHc1MT+1w7R3NREc3MzL738at7923b20NoyjhnT\nTxy5Vqo2Uq3vUsn7S3wlEomSpDbEos9DEyMKZJ8oMbVtaHiYqW+aRMu4EzihuYl5p07Pu3/B3Bmc\nMWd61SZJLHbSR5FcNDFiQKOtJF2uBaU6u/ZzUtukUUN6x9oP1R3yq0kapZw0VFfBQ0QkMg3VFRGR\nilPwEBGRyBQ8REQkMgUPERGJLBZ5HiJh5ctAD5PJnev8bS91A3DarKm8sv9gzmvlOhYY2Z6e/Z55\n35OnTs57/TDljbJfJBcFD2kY+TLQw2Ry5zr/qo4f8siGreDOhNYWTj9lGnNmTTvuWqnp5DOPnXVy\nG8NDQzz25AsYb2S/pwenVBb87mDobrbrhylvZnmUxS6FikWzlRaDkjCyZW1n2xb1/Jd272NoyBk8\nOkzv64dpamrKeq1cx760ex9bX+phaMg5NuQj2e+Z921uaqIvz/XDlDfKfomnUi0GFZvgoQxzGUu+\nDPQwmdy5zp835ySam42Wcc1MmzKR4eHhrNfKdey8OSfxtnkzaG62UdnvmfcdGh6mLc/1w5Q3yn6J\nJ2WYB5QkKFHky0APk8md6/ztO3sAmDOzjX19h3JeK9exwMj29Oz3zPue1DYp7/XDlDfKfokvZZgr\neIiIRKYMcxERqTgFDxERiUzBQ0REIlPwEBGRyBQ8REQkMgUPERGJTMFDREQiq+ngYWYTzWyDmX24\n2mUREZE31HTwAK4HflTtQjQSzRFWOnqWpaXnWVvKHjzMbLmZdZvZ5oztF5rZFjPbZmbXZznvz4Df\nAq8ABWdBSjT6AS0dPcvS0vOsLZWoeawAFqdvMLMm4LZg+5nAEjNbGOy73Mz+D7AEeDfwSeAzFShn\nTsX8ow17bpjjch0TZXvmtmr8QFbjefYPDLJ1Rxf9A4MAPLT2YTZt6WTTls6RbaljHlr7MP0DgyP7\ne/sOcueqe+jtO8imLZ2s3/wim7Z08vP7HmTTlk4e3biVu/9jI49t3Mqy5XeN7O8fGGT95hdH9q3f\n/OKofal7pt9n646ukfukjksve+p9b99BHt24lWWrEtyxYjXf+8ljvNy9/7jvmn58quyp17Lld/Hw\nL59j2aoEv9vVM+r5pF8n9f3T92XeJ/W8M59z/8Ag37vzx8d974fWPnzc/TL/zjL/jo4eGxr1/DPL\nk01mecbaX4l/m2GOjfIz3T8wmPXvp9w/62Vfz8PdHzezuRmbFwHb3X0ngJmtBi4Ctrj7SmBl6kAz\n+xSwr9zlzCeRSBQ8a2/Yc8Mcl+uYKNsztxXz3QpV6eeZuW7FzdddzHX/cBt9439vZP2MW264hGtv\n+il7evrY+/wv+IM/3sljT74wsu7G4J71fGPlU/T3D3Lg8BFOnNjCoc5fM3HOufS+dhgnWT0e6t7A\nhDnrOXHSeA51/orv/OchBo8NYcC4E5owM6ZMbqV90du45YZLuObGu0et73HqzDZ2d/cxMHAUMzjv\n7Pk0NzfR/eoBZkyfguHseeU1dry8j66e1xl25+jeJ2g99d1cf/O9PPGjG/jGHQ+yp6dv1PG79vbS\n3z/I64cGIJgLrn/3r2metQiALzcZ73r7XM6Yc/KodU5Sa4gM7lnPumcPjKz5kflMZ9sLvPvcPznu\nOV9z49387Effo2nGOUyZNH7ke1//9W8zc+EHRq0jkvl3lv53dN7Z89n8X5u485e3ceDQkZFrpa97\nkqmQ9Uwq8W8zzLFhf6ZT3+HRB1eN+vvJdmypf9YrMjFiEDzWuPtZweeLgcXuflXw+TJgkbtfXcC1\nNSuiiEgBipkYse5XEizmy4uISGGqNdrqZeD0tM9zgm0iIlIHKhU8jNEjpjYA881srpm1AJcCP69Q\nWUREpEiVGKp7F/BLYIGZ7TKzT7v7EPAlYC3wHLDa3Z8vd1lERKQ06n4lQRERqbxazzCPLJjS5N/M\n7A4z+2S1y1PvzOwMM/uemf242mWJAzO7yMz+1cxWmdkF1S5PvTOzhWZ2u5n92Mw+X+3y1LsoU0LF\nruYRDPvd7+73m9lqd7+02mWKAzP7sbtfUu1yxIWZtQE3uftnq12WODAzA37g7p+qdlnqmZl9DTgA\n/NbdH8h3bM3XPAqY3mQO0Bm8H6pYQetEodPFSHZFPM+/A75dmVLWj0Kep5n9OXAfkPc/u0YT9VlG\nnRKq5oMHEac3IRk45qQOrVQh60jU5zlyWGWKV3ciP08zuxF4wN2frmRB60Tk5+nua9z9I8BllSxo\nHYj6LNuJMCVUzQcPd38c2J+xeWR6E3c/CqSmNwG4F/i4mX0bWFO5ktaHqM/TzKaZ2e3AH6lGcrwC\nnueXgPNJ/hu9qqKFrQMFPM/3m9n/NbPvAPdXtrS1LeqzdPe/c/e/AX4IfHes69drhvmpvNE0BbCb\n5EPB3Q8DV1ajUHUs3/PsBb5QjULVsXzP81bg1moUqo7le56PAI9Uo1B1KuezTHH3O8NcqOZrHiIi\nUnvqNXhoepPS0vMsLT3P0tLzLJ2SPct6CR6a3qS09DxLS8+ztPQ8S6dsz7Lmg4emNyktPc/S0vMs\nLT3P0in3s4xdkqCIiJRfzdc8RESk9ih4iIhIZAoeIiISmYKHiIhEpuAhIiKRKXiIiEhkCh4iIhKZ\ngofUHTP7SzN7ysyeDF5PmdmQmS02s1PCrHpoZleb2W/NbGUlypynHAcKOOc/zWxyoeenXWeVmb2l\n0POlsSlJUOqemX0W+KS7fyDCOc8D57v7nvKVLFQ5Xnf3KRGO/zDJcl9byPkZ13ofcJm7a2p4iUw1\nD6lrZrYA+HuChYCCOXueCd5fYWb/38zWmdlWM/tqsP124M3Ag2Z2Tcb1ft/M1gc1mqdTv5mb2b2W\nXNv5GTP7TNrxB8zsf5vZs2a21szOCe73gpl9NEc5/j7Hd/lbM3siuO/SHF/5fwI/y3H+TUH5NpnZ\nJcE2M7NlQS3rITO738w+FpzyGPBnwQJBItG4u1561eWL5Ho0G4CPp22bC2wO3l9BcsbQNqAVeAY4\nO9j3IjA1yzX/H7Ak7frjg/dtwZ+p60wNPg8DHwze3wP8B8lfys4CngpRjteDPy8A7gjeG8mFzM7L\nUr6XgElpn1PnXww8FLyfAewEZgbb7wu2zwR6gY+lnf8Q8I5q/13qVX8v/cYh9ewbwLPu/pM8xzzs\n7n3uPkDyP/fzgu2Zs42m/Ar4ipldB8xz9yPB9r82s6eBX5OcxvqtwfYj7r42eP8M8Ii7Dwfv54Yo\nR8oHgQvM7EngSeBtafdIN9XdD2XZ/h5gFYC79wAJkov8nAfcHWzvBtZlnPcKMDvL9UTyqteVBKXB\nmVk78FfAO8Y4NLNTL28nn7uvMrNfAx8FHgiWinXgT4F3u/sRM1tHsgYBcDTt9GHgSHAdN7P0n6+x\nymHAP7v7WMt/Hhtjf/r1wnRotgL9Ia8pMkI1D6k7ZjYV+D7wKU8uO5zPBWbWZmYTgL8EHh/j2me4\n+w5PLhf7M5LNT28C9geBYyFwbvop+S4XohypYx4CrjSzSUE5ZpvZyVmuudXM3pzlHo8BnzCzpuC8\n9wJPAP9Fcr10M7OZQHvG9RYAz+b5DiJZqeYh9ehzwMnA7WYGb/yW/c8k/8NM9wTJZqJTgZXu/lSw\nPddv5ZeY2eUkaxR7gX8EDgOfN7PngK0km7ZS8v12n74vbznc/eEgMP0q+E4HSA4CeCXjmvcDHyDZ\nZ5N+/r1mdi6wiWQN6Dp37zGzn5KsNT1Hcu3q3wCvAZjZDOBw0MwlEomG6kpsmdkVwDvd/eq4lMPM\nZgE/cPfFEc6Z5O6HzGwasB54TxBY/hp4zd1XFFsuaTyqeYjUEXfvMrPvmtlkdz8Y8rT7zKwNGAf8\nQ1pNYz9Q1SRJqV+qeYiISGTqMBcRkcgUPEREJDIFDxERiUzBQ0REIlPwEBGRyBQ8REQksv8GMpxH\nklrCiIkAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1696c72e50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "thinkplot.Pdf(pmf, style='.')\n",
    "thinkplot.Config(xlabel='Zipf sample (log)', ylabel='PMF (log)', \n",
    "                 xscale='log', yscale='log')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(6.078, 79.855)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mu, sigma = zipf_sample.mean(), zipf_sample.std()\n",
    "mu, sigma"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(6.115, 2.483)"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poisson_sample = np.random.poisson(lam=mu, size=10000)\n",
    "poisson_sample.mean(), poisson_sample.std()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1696adbad0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "poisson_pmf = Pmf(poisson_sample)\n",
    "thinkplot.Pdf(poisson_pmf, style='.')\n",
    "thinkplot.Config(xlabel='Poisson sample (log)', ylabel='PMF (log)', \n",
    "                 xscale='log', yscale='log')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Barabási and Albert"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's see what the degree distribution for the Facebook data looks like on a log-log scale."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "pmf_fb = Pmf(degrees(fb))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nkrT/D9rC+sNbvrAfAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1696afec90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "thinkplot.Pdf(pmf_fb, style='.', label='Facebook')\n",
    "thinkplot.config(xscale='log', yscale='log', loc='upper right',\n",
    "                 xlabel='Degree (log)', ylabel='PMF (log)')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For degrees greater than 10, it resembles the Zipf sample (and doesn't look much like the Poisson sample).\n",
    "\n",
    "We can estimate the parameter of the Zipf distribution by eyeballing the slope of the tail."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n/wNSDTREULcWBQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1696b4a5d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "thinkplot.plot([20, 1000], [5e-2, 2e-4], color='gray', linestyle='dashed')\n",
    "\n",
    "thinkplot.Pdf(pmf_fb, style='.', label='Facebook')\n",
    "thinkplot.config(xscale='log', yscale='log', loc='upper right',\n",
    "                 xlabel='Degree (log)', ylabel='PMF (log)')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's a simplified version of the NetworkX function that generates BA graphs."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# modified version of the NetworkX implementation from\n",
    "# https://github.com/networkx/networkx/blob/master/networkx/generators/random_graphs.py\n",
    "\n",
    "def barabasi_albert_graph(n, k, seed=None):\n",
    "    \"\"\"Constructs a BA graph.\n",
    "    \n",
    "    n: number of nodes\n",
    "    k: number of edges for each new node\n",
    "    seed: random seen\n",
    "    \"\"\"\n",
    "    if seed is not None:\n",
    "        random.seed(seed)\n",
    "    \n",
    "    G = nx.empty_graph(k)\n",
    "    targets = set(range(k))\n",
    "    repeated_nodes = []\n",
    "\n",
    "    for source in range(k, n):\n",
    "\n",
    "        G.add_edges_from(zip([source]*k, targets))\n",
    "\n",
    "        repeated_nodes.extend(targets)\n",
    "        repeated_nodes.extend([source] * k)\n",
    "\n",
    "        targets = _random_subset(repeated_nodes, k)\n",
    "\n",
    "    return G"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And here's the function that generates a random subset without repetition."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "def _random_subset(repeated_nodes, k):\n",
    "    \"\"\"Select a random subset of nodes without repeating.\n",
    "    \n",
    "    repeated_nodes: list of nodes\n",
    "    k: size of set\n",
    "    \n",
    "    returns: set of nodes\n",
    "    \"\"\"\n",
    "    targets = set()\n",
    "    while len(targets) < k:\n",
    "        x = random.choice(repeated_nodes)\n",
    "        targets.add(x)\n",
    "    return targets"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "I'll generate a BA graph with the same number of nodes and edges as the Facebook data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4039, 88234, 22)"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n = len(fb)\n",
    "m = len(fb.edges())\n",
    "k = int(round(m/n))\n",
    "n, m, k"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Providing a random seed means we'll get the same graph every time."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "ba = barabasi_albert_graph(n, k, seed=15)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The number of edges is pretty close to what we asked for."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4039, 88374, 21.880)"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(ba), len(ba.edges()), len(ba.edges())/len(ba)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So the mean degree is about right."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(43.691, 43.760)"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.mean(degrees(fb)), np.mean(degrees(ba))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The standard deviation of degree is pretty close; maybe a little low."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(52.414, 40.887)"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.std(degrees(fb)), np.std(degrees(ba))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's take a look at the degree distribution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "pmf_ba = Pmf(degrees(ba))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Looking at the PMFs on a linear scale, we see one difference, which is that the BA model has no nodes with degree less than `k`, which is 22."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nr3/9a23fvl3bt2/XuHHj0n6fZK4Gs2bNGg0dOrT9D5wDhfkOAEDX0dZyk86we/fuhmS5srJS119/\nfUNnnEgk9OUvf1nXXHON5s2bpwEDBuill17SxIkTdemll+q0007TZz/7WZ199tmqrq7WSy+9pOOO\nO65hRGTevHm65JJLNHz4cJWVlenzn/+8pPpylEmTJun555/XRz7yEd18883q1auXJk6cqGQyqaKi\nIs2ePVtXX321nn/+eT311FP6yU9+0hCzmem2227TV77yFU2dOlVPPPGEunXr1vk/PACx0NZyk1x7\n9NFHtWPHDp1wwglav369nn32WT399NM66aSTGtr87Gc/09y5cxtdpeXCCy/UT37yE33oQx9SZWWl\nfvWrXzV7v8rKSiUSCfXv3191dXWaO3eu3nzzzbQ2mzdv1i9/+UtdeeWVevjhh7Vs2TKdf/752Xng\nLGGkHECXkTmRR5Iuv/xyDRkyREOHDtVJJ52kM844I+347Nmzdfzxx+uDH/ygjjzySH3/+9+Xu6uk\npEQPP/ywfvzjH2vAgAEaNWqUZs+erbq6uoZ7XXrppfriF7+oYcOGyd31s5/9TJJ0wgknaO7cufr6\n17+ugQMHasGCBXrsscdUUFCg4uJiPf7443rkkUfUv39/XXPNNbr33nsbSmiCzzBnzhwNGjRIF1xw\nQcOKMAAQRVOnTlWvXr3Uu3dv/eAHP9C8efN03HHH6e6779Ypp5yic845RwMHDmz4c/XVV+uNN944\nZJUWSfrhD3+oYcOG6aijjtInPvEJXXjhhWkDG5m/K44//nhde+21mjRpkgYPHqy33nrrkN8VEydO\n1IoVK9S/f3/94Ac/0IMPPqg+ffo0er18YaInEDPNTRZC52Oi50Gt7bPry5ekOncVFjC2hHiIc999\n++236/7779dzzz3XrvPnzp2rOXPm6Pnnn89KPLnqtylfAQCExvrte3XDg29Jkob06a4ff+7EPEcE\nINs2bdqkd999V6eddpqWL1+um2++ucWVrKKApBwAEBqJwBhUXUxHDYGoq66u1owZM7Rq1Sr16dNH\n06dP15VXXpnvsHKO8hUgZuL8FWhXRPnKQa3psyt27tP3/1g/gWtgr2668aKTmm0PRAV9d9fBOuUA\ngNhLBCZkJetIUABER+ST8pWrN+u9dVtbbggA6PKM8hUAERX5mvLrZte/ovvfvvkZHXf04BZaAwC6\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1695681650>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "thinkplot.preplot(cols=2)\n",
    "\n",
    "thinkplot.Pdf(pmf_fb, label='Facebook')\n",
    "thinkplot.config(xlabel='degree', ylabel='PMF')\n",
    "\n",
    "thinkplot.subplot(2)\n",
    "\n",
    "thinkplot.Pdf(pmf_ba, label='BA graph')\n",
    "thinkplot.config(xlabel='degree', ylabel='PMF')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "But if we look at the PMF on a log-log scale, the BA model looks pretty good for values bigger than about 20.  And it seems to follow a power law."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\ngAT+Dwtml7b5HdasAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1697ba4c90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "thinkplot.preplot(cols=2)\n",
    "\n",
    "thinkplot.Pdf(pmf_fb, style='.', label='Facebook')\n",
    "thinkplot.config(xlabel='degree', ylabel='PMF')\n",
    "thinkplot.config(xscale='log', yscale='log')\n",
    "\n",
    "thinkplot.subplot(2)\n",
    "\n",
    "thinkplot.Pdf(pmf_ba, style='.', label='BA model')\n",
    "thinkplot.config(xlabel='degree', ylabel='PMF')\n",
    "thinkplot.config(xlim=[1, 1e4],\n",
    "                 xscale='log', yscale='log')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Cumulative distributions"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Cumulative distributions are a better way to visualize distributions.  The following function shows what a cumulative probability is:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def cumulative_prob(pmf, x):\n",
    "    \"\"\"Computes the cumulative probability of `x`.\n",
    "    \n",
    "    Total probability of all values <= x.\n",
    "    \n",
    "    returns: float probability\n",
    "    \"\"\"\n",
    "    ps = [pmf[value] for value in pmf if value<=x]\n",
    "    return sum(ps)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The total probability for all values up to and including 11 is 0.258, so the 25th percentile is about 11."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.258"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cumulative_prob(pmf_fb, 11)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The median degree is about 25."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.506"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cumulative_prob(pmf_fb, 25)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And the 75th percentile is about 57.  That is, about 75% of users have 57 friends or fewer."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.752"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cumulative_prob(pmf_fb, 57)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`thinkstats2` provides `Cdf`, which computes cumulative distribution functions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from thinkstats2 import Cdf"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here are the degree CDFs for the Facebook data, the WS model, and the BA model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "cdf_fb = Cdf(degrees(fb), label='Facebook')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "cdf_ba = Cdf(degrees(ba), label='BA model')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If we plot them on a log-x scale, we get a sense of how well the models fit the central part of the distribution.\n",
    "\n",
    "The BA model is ok for values above the median, but not very good for smaller values."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYkAAAETCAYAAADDIPqYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmYVNW57/Hv2zSDJIIMNkoDjTiBIYFrnK9Do3BAE4Ko\nLYNpjgOE+DiEJCYah9jE82TQc0zicEw84TGglyFEkcEhXMXWGEmEJIAtpTgiU5sLCggKAr3uH1Vd\nVBdVXUPXrtq76vd5Hh5r771q9+pld7+11rvW2uacQ0REJJGyQldARET8S0FCRESSUpAQEZGkFCRE\nRCQpBQkREUlKQUJERJLyNEiY2Qwz+9DM1rRS5j4ze8vMVpnZUC/rIyIimfG6J/EIMDLZRTO7EDjW\nOXc8MBX4jcf1ERGRDHgaJJxzLwMft1JkDDArUvZvQFcz6+VlnUREJH2FzklUAhtijjdFzomIiA+U\nF7oC6TIz7R8iIpIF55xl+95CB4lNQN+Y4z6Rcwl5vc9UXV0ddXV1nr83Vdlk1zM5H38u1bEX8tGe\n2bZla9fSaat8t+fCZau5/fY7OOHUixJe79J+D0d03EMZiX9HXnnpOc46d3jKr5OqXPz193d1i75e\n+9clnHTG11uUT+dcquPHf/3tlPXOVCn9rptlHR+A/AQJi/xLZBFwHTDPzM4AtjvnPsxDnRKqrq7O\ny3tTlU12PZPz8efa8r1lKx/tmW1btnYtnbbLZ3suXLaaJ59+gRMHHEXVF1tL8SXXt2rAIefKysro\nXdGVo3p2jZ7rXHYWJ53UP3pcXl7O4MGDGTRoEAD19Wcm/d7r6wceci2dc/HHdXWN1NXlPjDE0u96\n+szLT+dmNhuoBnoAHwJ3Ah0A55x7OFLmAWAUsBu4yjn3jyT3ctqxNnfy0ZMoJbluz1AoRENDAxsb\nt7GxsWVgSPTHPV78H/cg0c9mbpmZf4ebnHMT0yhzvZd1kMQK0bMoZrloz+bAsH//fgAat+44JED0\nOapb0uAQ5MAQSz+b/uJpTyKX1JOQYhIfEOIlChB9e/dk5PlnBz4ISH75uichIgelCgzNmgNEE8b2\nvZ3Yua8Tk8acyZjzh+Sppqn179+f9evXF7oaEqOqqor3338/5/dVT0LEY5kEh03/2sm2zzqwc1+n\n6Hm/BQiIfjotdDUkRrL/J+pJiPhQOoEhNoewcNlqXv7rcqBLizJ+DBBSWhQkRHIoVXBIlFxeuGw1\nsxYub1GuY4f2jLvwFAUIKTgFCZEcyCY4QOIAod6D+ImChEgbhUIhVq1adcj5VFNSFSAkCBQkRLKU\nrPeQTnCY98xK9n6+r8V5BYhgOuecc5gyZQqTJk3K6X1ra2s5/vjj+fGPf5zT+2ZKQUIkC8l6D0OH\nDm11HUOi3gMoQORa//79+de//kV5eTnOOcyMdevWcdRRRxW6aoGjICGSgWx7D6AEdT6ZGU899RTD\nhg0rdFUCr9DPkxAJlEQBYujQodTU1GQcICaNOZPZ91yjAOGR+DUDzjlqamo4+uij6d69O+effz5v\nvPFG9Ppnn33Gd7/7XaqqqujWrRvV1dXs2xceEvzLX/7CmWeeSbdu3Tj55JP585//3OLe69at49RT\nT6Vbt25ceuml7NixI3ptwYIFDB48mO7duzN8+HDWrVsXvbZ27Vqqq6vp1q0bQ4YM4emnn074vezc\nuZPzzjuP73//+21ul0ypJyGShkQ9iHT3Siq1BPWl38ntU4hzuVX46NGjmTlzJuXl5dx0003U1tay\nYsUKAKZNm8a7777LihUrOPLII1m+fDllZWVs3LiRMWPGMHfuXIYPH87SpUu55JJLWLduHd26hbdK\nf/TRR1m6dCn9+vVj4sSJTJs2jUceeYRQKMSkSZNYsmQJZ599NnfffTff+MY3eP3112lqauLrX/86\n1113Hc8//zz19fVcfPHFrF69mgEDDu7au23bNkaOHMmYMWO44447ctYW6dKKa5EUEuUfysvLqamp\nSfneYg0Qra249kOQOOaYY9i2bRvl5eHPwdXV1TzxxBMtymzdupWKigp2795Nx44d6dy5M6tWrWLg\nwIEtyv30pz/lnXfeYcaMGdFzw4cP55prrmHChAmcc845DBs2jJ/85CcAvPbaa5x++ul8+umn1NXV\n8fbbb/PYY48B4d5MZWUlf/zjH/n888+pra1lw4aDD+e8/PLLGTp0KLfeeiu1tbV06tSJV155halT\np3LjjTe2+j1rxbVIASQLEIMHD07r/fOeWdniuBgCRFAsXLiwRU6iqamJW265hccff5xt27ZhZpgZ\nW7dupby8nH379rX4BN9s/fr1zJ49mwULFgDhP/T79+/noosOPgCqb9+Dz06rqqpi7969fPzxx2ze\nvJmqqqroNTOjsrKSTZs2sW/fPvr169fia1VVVbFp08Hnri1evJgjjjiCyZMnt71BsqQgIZJEogCR\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1695647c90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "thinkplot.Cdf(cdf_fb, label='Facebook')\n",
    "thinkplot.Cdf(cdf_ba, color='gray')\n",
    "thinkplot.config(xlabel='degree', xscale='log',\n",
    "                 ylabel='CDF')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "On a log-log scale, we see that the BA model fits the tail of the distribution reasonably well."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nEBERz/4/yPTco2RO6qoAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1695a226d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "thinkplot.Cdf(cdf_fb, label='Facebook', complement=True)\n",
    "thinkplot.Cdf(cdf_ba, color='gray', complement=True)\n",
    "thinkplot.config(xlabel='degree', xscale='log',\n",
    "                 ylabel='CCDF', yscale='log')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "But there is certainly room for a model that does a better job of fitting the whole distribution."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
